package com.macro.mall.tiny.modules.oms.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.macro.mall.tiny.modules.oms.dto.UserListQueryParam;
import com.macro.mall.tiny.modules.oms.dto.UserLoginParam;
import com.macro.mall.tiny.modules.oms.dto.UserParam;
import com.macro.mall.tiny.modules.oms.dto.UserUpdateParam;
import com.macro.mall.tiny.modules.oms.model.User;

/**
 * <p>
 * 顾客表 服务类
 * </p>
 *
 * @author macro
 * @since 2023-11-07
 */
public interface UserService extends IService<User> {


    /**
     * 顾客登录
     */
    String login(UserLoginParam loginParam);

    /**
     * 顾客退出登录
     */
    void logout(String token);

    /**
     * 获取顾客信息
     */
    User getUserInfo(Integer userId);

    /**
     * 更新顾客信息
     */
    boolean updateUserInfo(Integer userId, UserUpdateParam updateParam);

    /**
     * 根据手机号获取用户
     */
    User getByPhone(String phone);

    User getByName(String name);

    /**
     * 添加顾客
     */
    boolean create(UserParam userParam);

    /**
     * 顾客列表
     */
    Page<User> pageList(UserListQueryParam queryParam);
    
    /**
     * 删除顾客（软删除）
     */
    boolean delete(Integer userId);
}